/**
 * 此类为配置模板,包含各项配置以及说明.
 * @type {{mode: string, scrollable: boolean, vertical: boolean, limitCount: number, item: {width: number, height: number, background: string, layout: {rank: {bound: number[], type: string, textAlign: string, textColor: string, textSize: number, background: string, format: (function(*): *)}, avatar: {bound: number[], type: string, scaleType: string, background: string}, nickname: {bound: number[], type: string, textAlign: string, textColor: string, textSize: number, background: string}, score: {bound: number[], type: string, textAlign: string, textColor: string, textSize: number, background: string}, forth: {bound: number[], type: string, textAlign: string, textColor: string, textSize: number, background: string, format: (function(*): string)}}}, split: {width: number, height: number, background: string}, extra: {topThreeDrawable: string[]}}}
 */

module.exports = {
  /**
   *  指示渲染模式:
   *      single : 仅渲染一条(自己的上一条,即将超越);
   *      list : 渲染完整的列表, 如果选择滚动模式,则滚动渲染所有,否则仅渲染最大高度的数据.
   *      relative : 渲染与自己数据相关的若干条数据.即向前/向后各渲染有限条数据.
   */
  mode: "list",
  /**
   * 是否允许滚动. 默认为false,不触发滚动显示. 注: single模式下不生效.无法滚动.
   */
  scrollable: false,
  /**
   * 默认竖向滚动布局.即由上到下依次布局.
   */
  vertical: true,

  /**
   * 条数限制. <=0 : 无限制
   */
  limitCount: 4,
  /**
   * 数据区绘制范围. 用于控制列表数据区域大小.
   */
  pager: {
    bound: [160, 470, 150, 60],
    type: "text",
    textAlign: "center|middle",
    textColor: "#fff",
    style: "shrink",
    textSize: 42,
    strokeStyle: "#0f4b6a",
    lineWidth: 2,
    format: function(cur, total) {
      return `${cur + 1} / ${total}`
    }
  },
  /**
   * 单条item 尺寸信息.注: single 模式下不生效,将以显示容器的尺寸为准.
   * 由UI设计师设计并标注. 开发者只需按标注填写相应位置及尺寸即可.
   * background 可以为 颜色字符串:#000000, 也可以为图片资源"no1.png", 还可以是渐变背景.
   * {
   *       0: "#ffcc00",
   *       1: "#004499",
   *       arrow: [1, 1], // arrow 指的是渐变方向. 1为铺满view.
   *   },
   */
  item: {
    bound: [0, 0, 480, 650],
    width: 480, // item 宽度, 可以省略, 省略时使用显示容器的宽度
    height: 120, // item 高度. 横向布局时可省略,省略时使用显示容器的高度.
    background: "itemBg.png", // item 背景颜色,可以配置资源路径,路径基于open-data/res/目录,省略open-data/res/
    layout: { // item 的布局信息. 每一个key 对应待显示数据的字段. 如 nickname 表示要绑定的排行数据的字段名为nickname.
      rank: { // 名次信息. 如果extra 中包含topTree资源,则前三名次会替换为相应图片显示.
        bound: [10, 14, 80, 80],
        type: "text",
        textAlign: "center|middle",
        textColor: "#fff",
        textSize: 46,
        strokeStyle: "#885951",
        lineWidth: 2,
        format: function(v) {
          return v + 1;
        }
      },
      avatar: { // 头像.
        bound: [90, 10, 70, 70],
        type: "image",
        scaleType: "centerInside",
      },
      nickname: {
        bound: [180, -30, 150, 107],
        type: "text",
        style: "shrink",
        textAlign: "left|middle",
        textColor: "#fff",
        textSize: 30,
      },
      heroNum: {
        bound: [180, 0, 150, 107],
        type: "text",
        textAlign: "center|middle",
        textColor: "#fff",
        style: "shrink",
        textSize: 30,
        format: function(v) {
          return "侠客总数量:" + v;
        }
      },
      heroTotalLv: {
        bound: [180, 30, 150, 107],
        type: "text",
        textAlign: "center|middle",
        textColor: "#fff",
        style: "shrink",
        textSize: 30,
        format: function(v) {
          return "侠客总等级:" + v;
        }
      },
      sendIcon: { // 赠送
        bound: [380, 10, 31, 31],
        type: "image",
        scaleType: "centerInside",
      },
    }
  },
  /**
   * 可单独规定自身的数据绘制. 具布局可与item 相同.
   */
  selfItem: {
    bound: [0, 520, 480, 120],
    width: 480, // item 宽度, 可以省略, 省略时使用显示容器的宽度
    height: 120, // item 高度. 横向布局时可省略,省略时使用显示容器的高度.
    background: "#00cc98",
    layout: { // item 的布局信息. 每一个key 对应待显示数据的字段. 如 nickname 表示要绑定的排行数据的字段名为nickname.
      rank: { // 名次信息. 如果extra 中包含topTree资源,则前三名次会替换为相应图片显示.
        bound: [10, 14, 80, 80],
        type: "text",
        textAlign: "center|middle",
        textColor: "#fff",
        textSize: 46,
        strokeStyle: "#885951",
        lineWidth: 2,
        format: function(v) {
          return v + 1;
        }
      },
      avatar: { // 头像.
        bound: [90, 10, 70, 70],
        type: "image",
        scaleType: "centerInside",
      },
      nickname: {
        bound: [180, -30, 150, 107],
        type: "text",
        style: "shrink",
        textAlign: "left|middle",
        textColor: "#fff",
        textSize: 30,
      },
      heroNum: {
        bound: [180, 0, 150, 107],
        type: "text",
        textAlign: "center|middle",
        textColor: "#fff",
        style: "shrink",
        textSize: 30,
        format: function(v) {
          return "侠客总数量:" + v;
        }
      },
      heroTotalLv: {
        bound: [180, 30, 150, 107],
        type: "text",
        textAlign: "center|middle",
        textColor: "#fff",
        style: "shrink",
        textSize: 30,
        format: function(v) {
          return "侠客总等级:" + v;
        }
      }
    }
  },
  /**
   * 多条数据时的分割线.同item. 可以使用图片资源.
   * 注: 单条数据时忽略split.
   */
  split: {
    offset: 18,
    width: 480,
    height: 0,
    // background: "#e6acd2",
  },
  // 可以存放一些其他额外的配置信息.
  extra: {
    topThreeDrawable: ["no1.png", "no2.png", "no3.png"],
  }
};